1. Field of the Invention
The present invention relates generally to a robot control system implemented on a hardware platform based on a programmable logic controller (“PLC”) or programmable automation controller (“PAC”), and, in particular, to an integrated simulation and validation platform with a configurable data feedback system.
2. Description of the Related Art
In general, in the descriptions that follow, we will italicize the first occurrence of each special term of art which should be familiar to those skilled in the art of robot control systems. In addition, when we first introduce a term that we believe to be new or that we will use in a context that we believe to be new, we will bold the term and provide the definition that we intend to apply to that term. In addition, throughout this description, we will sometimes use the terms assert and negate when referring to the rendering of a signal, signal flag, status bit, or similar apparatus into its logically true or logically false state, respectively, and the term toggle to indicate the logical inversion of a signal from one logical state to the other. Alternatively, we may refer to the mutually exclusive boolean states as logic—0 and logic—1. Of course, as is well know, consistent system operation can be obtained by reversing the logic sense of all such signals, such that signals described herein as logically true become logically false and vice versa. Furthermore, it is of no relevance in such systems which specific voltage levels are selected to represent each of the logic states.
In general, modern PLCs and PACs are capable of controlling very large workcells or entire production lines. In such applications, the controller must be adapted to interact with the cell equipment using relatively large numbers of separate and distinct input and output (“I/O”) signals. Depending on the system requirements, such equipment may comprise not just explicit motion controls, but also a human-machine interface (“HMI”), various environmental or situational sensors, vision, and the like, in a complete integrated package. However, due to limitations in the principle programming languages, such as that defined in IEC 6-1131, conventional PLC/PAC controllers have demonstrated only limited success in motion planning and control of robotic manipulators having multiple degrees of autonomy.
Robotic manipulators are typically used in automated packaging and assembly plants, especially for tasks such as pick and place or container filling operations. In general, robot controllers provide full kinematic support, but only limited support for integrated control environments, often being limited to use in a relatively small workcell having a limited number of I/O signals that must be monitored/managed coincident with the actual robot sensors/controls. Such limitations arise in part due to known deficiencies in the primary controller languages, but also because the programming and maintenance environments tend to be non-homogeneous. As a result, operators usually employ a primary PLC/PAC to control the workcell and, as necessary, to provide relatively high-level, point-to-point motion control commands to a separate robot manipulator controller adapted to translate each motion control command into an appropriate sequence of robot joint motion actions for implementing the requested motion.
In the past, various techniques have been used to develop the control programs required to implement a new workcell or work system. Of particular concern here is the approach employed to ‘teach’ an integrated robot manipulator the particular sequence of movements required to accomplish the task at hand. One such prior art technique is to manually ‘lead-by-the-nose’, i.e., to have one person move the robot manipulator (maintained for the duration in a compliant state) through the desired sequence of motions, while another person facilitates the recording of those motions for playback during normal operation. Another popular technique is by using various HMI devices to inform the robot manipulator controller of the desired sequence of movements. In many commercial robot manipulator systems, the vendor will include a teach pendant specially adapted to facilitate this form of teaching.
It has also been proposed to implement wholly off-line programming, wherein models of both the workcell and the robot manipulator can be graphically simulated, simultaneously, thereby allowing, at least in theory, the whole system to be programmed without resort to any physical instantiation. However, this approach is incapable of allowing the simulation to take into consideration the full range and variation of those sensory inputs that would be present in the actual instantiation. Further, no known prior art system of this type is capable of supporting what we refer to as integrated simulation. For example, in some instances, it may be desirable to fully instantiate the workcell and allow it to operate in real time, while, simultaneously, simulating the robot manipulator. Similarly, it may be desirable to fully instantiate the robot manipulator and allow it to operate in real time, while, simultaneously, simulating the workcell. One primary advantage of such an approach is that each of the controller software components—workcell and robot manipulator—are able to execute in as close to a real situation as possible, but without exposing either the workcell or the robot to potential damage. Of course, once both the workcell control component and the robot manipulator control component have been sufficiently debugged, the respective physical instantiations can be simultaneously activated but operating disjoint, i.e., the robot manipulator can be positioned outside of, but adjacent to, the workcell so that the respective, coordinated operations can be simultaneously observed and, as necessary, corrective action taken.
We submit that what is desired, ultimately, is an integrated simulation solution that facilitates safe and efficient development of the software control components of the complete system, including both the workcell equipment and the robot manipulator. In particular, we submit that such a method and apparatus should provide performance generally comparable to the best prior art techniques while requiring less development time than known implementations of such prior art techniques. In addition, such a method and apparatus should facilitate user-configurable real time feedback of data from the motion control software, whether it is connected to real hardware or to a simulator thereof.